From 3cdfd04b47860811ff2012a7b28964e7499b0bca Mon Sep 17 00:00:00 2001 From: "iap10@labyrinth.cl.cam.ac.uk" Date: Tue, 10 Aug 2004 20:51:11 +0000 Subject: [PATCH] bitkeeper revision 1.1159.20.1 (4119353fK0fKs_SYKxrgvHgZ7WbE4Q) migration blkdev and netdev resume fixes --- .../arch/xen/drivers/blkif/frontend/main.c | 12 ++++++++++++ linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c | 5 +++-- .../drivers/xen/netfront/netfront.c | 17 +++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c index 015d62c624..0d5fd96968 100644 --- a/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c +++ b/linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/frontend/main.c @@ -805,4 +805,16 @@ void blkdev_suspend(void) void blkdev_resume(void) { + ctrl_msg_t cmsg; + blkif_fe_driver_status_changed_t st; + + + /* Send a driver-UP notification to the domain controller. */ + cmsg.type = CMSG_BLKIF_FE; + cmsg.subtype = CMSG_BLKIF_FE_DRIVER_STATUS_CHANGED; + cmsg.length = sizeof(blkif_fe_driver_status_changed_t); + st.status = BLKIF_DRIVER_STATUS_UP; + memcpy(cmsg.msg, &st, sizeof(st)); + ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE); } + diff --git a/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c b/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c index c218d199d1..6acd49bc06 100644 --- a/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c +++ b/linux-2.4.26-xen-sparse/arch/xen/kernel/setup.c @@ -1200,6 +1200,7 @@ static void __do_suspend(void) /* Hmmm... a cleaner interface to suspend/resume blkdevs would be nice. */ extern void blkdev_suspend(void); extern void blkdev_resume(void); + extern void netif_resume(void); extern void time_suspend(void); extern void time_resume(void); @@ -1248,8 +1249,8 @@ static void __do_suspend(void) __sti(); - //blkdev_resume(); - //netdev_resume(); + blkdev_resume(); + netif_resume(); out: if ( suspend_record != NULL ) diff --git a/linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c b/linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c index c85e30610e..368feadc55 100644 --- a/linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c +++ b/linux-2.6.7-xen-sparse/drivers/xen/netfront/netfront.c @@ -874,4 +874,21 @@ static int __init netif_init(void) return err; } +void netif_resume(void) +{ + ctrl_msg_t cmsg; + netif_fe_driver_status_changed_t st; + + /* Send a driver-UP notification to the domain controller. */ + cmsg.type = CMSG_NETIF_FE; + cmsg.subtype = CMSG_NETIF_FE_DRIVER_STATUS_CHANGED; + cmsg.length = sizeof(netif_fe_driver_status_changed_t); + st.status = NETIF_DRIVER_STATUS_UP; + st.nr_interfaces = 0; + memcpy(cmsg.msg, &st, sizeof(st)); + ctrl_if_send_message_block(&cmsg, NULL, 0, TASK_UNINTERRUPTIBLE); + +} + + __initcall(netif_init); -- 2.30.2